]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
dash: Make the tooltip and hover effect sync up to the real insensitivity
authorJasper St. Pierre <jstpierre@mecheye.net>
Wed, 3 Oct 2012 05:17:07 +0000 (02:17 -0300)
committerJasper St. Pierre <jstpierre@mecheye.net>
Sat, 6 Oct 2012 19:07:54 +0000 (16:07 -0300)
We shouldn't display "Remove from Favorites" when dropping on the button
will do nothing.

https://bugzilla.gnome.org/show_bug.cgi?id=685313

js/ui/dash.js

index 3a7828cf8dd31d63373ea064a5a48d4d69330446..427802ac0f57b4abe393d74b67667f936c655e31 100644 (file)
@@ -262,7 +262,7 @@ const ShowAppsIcon = new Lang.Class({
         this.toggleButton._delegate = this;
 
         this.setChild(this.toggleButton);
-        this.setHover(false);
+        this.setDragApp(null);
         this.toggleButton.label_actor = this.label;
     },
 
@@ -274,12 +274,23 @@ const ShowAppsIcon = new Lang.Class({
         return this._iconActor;
     },
 
-    setHover: function(hovered) {
-        this.toggleButton.set_hover(hovered);
+    _canRemoveApp: function(app) {
+        if (app == null)
+            return false;
+
+        let id = app.get_id();
+        let isFavorite = AppFavorites.getAppFavorites().isFavorite(id);
+        return isFavorite;
+    },
+
+    setDragApp: function(app) {
+        let canRemove = this._canRemoveApp(app);
+
+        this.toggleButton.set_hover(canRemove);
         if (this._iconActor)
-            this._iconActor.set_hover(hovered);
+            this._iconActor.set_hover(canRemove);
 
-        if (hovered)
+        if (canRemove)
             this.setLabelText(_("Remove from Favorites"));
         else
             this.setLabelText(_("Show Applications"));
@@ -453,7 +464,10 @@ const Dash = new Lang.Class({
         if (!this._box.contains(dragEvent.targetActor) || showAppsHovered)
             this._clearDragPlaceholder();
 
-        this._showAppsIcon.setHover(showAppsHovered);
+        if (showAppsHovered)
+            this._showAppsIcon.setDragApp(app);
+        else
+            this._showAppsIcon.setDragApp(null);
 
         return DND.DragMotionResult.CONTINUE;
     },